package com.work.mapper.transport;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.work.dto.main.TransportCorpSearchDTO;
import com.work.dto.transport.TransportSearchDTO;
import com.work.dto.transport.WorkArrangeSearchDTO;
import com.work.vo.transport.*;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 货运Mapper
 *
 * @author ：dujianyu
 * @since ：Created in 2024/2/20 13:54
 */
@Mapper
@DS("master_transport")
public interface TransportMapper {
    /**
     * 货运舱单列表
     * @param dto 搜索条件
     * @return List<TransportBillVO>
     * @author dujianyu
     * @since 2024/2/20 14:12
     */
    List<TransportBillVO> selectTransportBillList(@Param("dto") TransportSearchDTO dto);

    /**
     * 货运船列表
     * @param dto 搜索条件
     * @return List<TransportShipVO>
     * @author dujianyu
     * @since 2024/2/21 9:45
     */
    List<TransportShipVO> selectTransportShipList(@Param("dto") TransportSearchDTO dto);

    /**
     * 获取货名
     * @param packageTypeCode 包装代码
     * @return String
     * @author dujianyu
     * @since 2024/3/8 14:12
     */
    String selectTransportPackageTypeCode(String packageTypeCode);

    /**
     * 包装列表
     * @param dto 搜索条件
     * @return List<TransportPackageTypeVO>
     * @author dujianyu
     * @since 2024/3/15 14:17
     */
    List<TransportPackageTypeVO> selectTransportPackageTypeList(@Param("dto") TransportSearchDTO dto);

    /** 
     * 船舱单货名列表
     * @param dto 搜索条件
     * @return List<CargoTypeVO>
     * @author dujianyu
     * @since 2024/5/6 14:32
     */ 
    List<CargoTypeVO> selectShipCargoTypeList(@Param("dto") TransportSearchDTO dto);

    /** 
     * 航运配工列表
     * @param dto 搜索条件
     * @return List<WorkArrangeShipVO>
     * @author dujianyu
     * @since 2024/5/14 14:23
     */ 
    List<WorkArrangeShipVO> selectWorkArrangeShipList(@Param("dto") WorkArrangeSearchDTO dto);

    /**
     * 陆运配工列表
     * @param dto 搜索条件
     * @return List<WorkArrangeLandVO>
     * @author dujianyu
     * @since 2024/5/15 16:15
     */
    List<WorkArrangeLandVO> selectWorkArrangeLandList(@Param("dto") WorkArrangeSearchDTO dto);

    /**
     * 配工工人
     * @param dto 搜索条件
     * @return List<AssignWorkerVO>
     * @author dujianyu
     * @since 2024/5/20 10:47
     */
    List<AssignWorkerVO> selectAssignWorkerList(@Param("dto") WorkArrangeSearchDTO dto);

    /**
     * 配工机械
     * @param dto 搜索条件
     * @return List<AssignMachineKindVO>
     * @author dujianyu
     * @since 2024/5/20 14:49
     */
    List<AssignMachineKindVO> selectAssignMachineList(@Param("dto") WorkArrangeSearchDTO dto);

    /**
     * 队组
     * @param dto 搜索条件
     * @return List<CorpTeamVO>
     * @author dujianyu
     * @since 2024/6/13 9:03
     */
    List<CorpTeamVO> selectCorpTeamList(@Param("dto") TransportCorpSearchDTO dto);

    /**
     * 货名列表
     * @param dto 搜索条件
     * @return List<CargoTypeVO>
     * @author dujianyu
     * @since 2024/7/4 14:06
     */
    List<CargoTypeVO> selectCargoTypeList(@Param("dto") TransportSearchDTO dto);

    /**
     * 客户代码列表
     * @param dto 搜索条件
     * @return List<ClientCodeVO>
     * @author dujianyu
     * @since 2024/7/8 14:27
     */
    List<ClientCodeVO> selectClientCodeList(@Param("dto") TransportSearchDTO dto);
}
